/*
  ==============================================================================
  This is an automatically generated file created by the Jucer!
  Creation date:  26 May 2007 4:17:45 am
	Author: Prashant Vaibhav
  ------------------------------------------------------------------------------

  The Jucer is part of the JUCE library - "Jules' Utility Class Extensions"
  Copyright 2004-6 by Raw Material Software ltd.

  ==============================================================================
*/

#ifndef __JUCER_HEADER_VMKDISPLAY_VMKDISPLAY_5932A2F8__
#define __JUCER_HEADER_VMKDISPLAY_VMKDISPLAY_5932A2F8__

//[Headers]
#include <juce/juce.h>
//[/Headers]



//==============================================================================
/**
                                                                    //[Comments]
    An auto-generated component, created by the Jucer.

    Describe your class and how it works here!
                                                                    //[/Comments]
*/
class VmkDisplay  : public Component,
                    public MidiKeyboardStateListener,
                    public SliderListener,
                    public ComboBoxListener,
                    public ButtonListener
{
public:
    //==============================================================================
    VmkDisplay ();
    ~VmkDisplay();

    //==============================================================================
    //[UserMethods]     -- You can add your own custom methods in this section.
    void handleNoteOn(MidiKeyboardState* source, int midiChannel, int midiNote, float vel);
    void handleNoteOff(MidiKeyboardState* source, int midiChannel, int midiNote);
    //[/UserMethods]

    void paint (Graphics& g);
    void resized();
    void sliderValueChanged (Slider* sliderThatWasMoved);
    void comboBoxChanged (ComboBox* comboBoxThatHasChanged);
    void buttonClicked (Button* buttonThatWasClicked);
    void keyPressed (const KeyPress& key);


    //==============================================================================
    juce_UseDebuggingNewOperator

private:
    //[UserVariables]   -- You can add your own custom variables in this section.
		MidiKeyboardState*	m_KeyboardState; // holds the current state of the midi keyboard
    MidiOutput*					m_MidiOut;
		bool								m_Transpose;
    //[/UserVariables]

    //==============================================================================
    Slider* m_slPitchBend;
    MidiKeyboardComponent* m_Keyboard;
    ComboBox* m_cmbChannel;
    Label* m_lbChannel;
    Slider* m_slVelocity;
    GroupComponent* m_grControllers;
    ToggleButton* m_btnTranspose;
    Slider* m_slTranspose;
    Slider* m_slController;
    Label* m_lbController;
    Slider* m_slController2;
    Slider* m_slController3;
    Slider* m_slController4;
    Slider* m_slController5;
    Slider* m_slController6;
    Slider* m_slController7;
    Slider* m_slController8;
    Slider* m_slController9;
    Label* m_lbController2;
    Label* m_lbController3;
    Label* m_lbController4;
    Label* m_lbController5;
    Label* m_lbController6;
    Label* m_lbController7;
    Label* m_lbController8;
    Label* m_lbController9;
    Slider* m_slModWheel;
    Slider* m_slBendRange;

    //==============================================================================
    // (prevent copy constructor and operator= being generated..)
    VmkDisplay (const VmkDisplay&);
    const VmkDisplay& operator= (const VmkDisplay&);
};


#endif   // __JUCER_HEADER_VMKDISPLAY_VMKDISPLAY_5932A2F8__
